
  const validator=()=>{
    return {
      /**
       * 判断是否是手机号码
       */
      isMobile: function(str) {
        return /^(13|14|15|16|17|18|19)\d{9}$/i.test(str);
      },

      /**
       * 判断是否是电话号码
       */
      isTel: function(str) {
        return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(str);
      },

      /**
       * 判断是否是邮箱地址
       */
      isEmail: function(str) {
        return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(str);
      },

      /**
       * 判断是否是邮编
       */
      isZip: function(str) {
        return /^[\d]{6}$/.test(str);
      },

      /**
       * 判断是否是中文
       */
      isChinese: function(str) {
        return /^[\u4e00-\u9fa5]+$/i.test(str);
      },

      /**
       * 判断是否是英文
       */
      isEnglish: function(str) {
        return /^[A-Za-z]+$/i.test(str);
      },
      /**
       * 判断是否是数字
       */
      isCumberNo: function(str) {
        console.log(str)
        return /^[0-9]+$/.test(str)
      },

      /**
       * 判断是否是发动机号
       */
      isCarEngineNo: function(str) {
        return /^[a-zA-Z0-9]{16}$/.test(str);
      },
      /**
       * 判断是否是身份证
       */
      isCard: function(str) {
        return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(str)
      },
      /**
       *  只取二位小数点
       */
      towDecimal: function(str) {
        let $value;
        let $values = str
        $value = $values.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符  
        $value = $values.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的  
        $value = $values.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        $value = $values.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数  
        if ($values.indexOf(".") < 0 && $values != "") { //以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额 
          $value = parseFloat($values);
        }
        return $value;
      },
      /**
       *  根据字节长度判断
       */
      isByteLength: function(str) {
        return str.length
      },
      /**
       * 判断是不是非法字符
       */
      isIllegalCharacter: function(str) {
        return RegExp(/[(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;) (\:) (\')(\`)(\")(\,)(\.)(\/)(\<)(\>)(\?)(\)]+/).test(str)
      },
      /**
       * 提取字符串或html标签里面的url
       */
      isHttp: function(str) {
        var reg = /(http:\/\/|https:\/\/)((\w|=|\?|\.|\/|&|-)+)/g;
        //var reg = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
        //var reg=/(http(s)?\:\/\/)?(www\.)?(\w+\:\d+)?(\/\w+)+\.(swf|gif|jpg|bmp|jpeg)/gi;
        var reg = /(http(s)?\:\/\/)?(www\.)?(\w+\:\d+)?(\/\w+)+\.(swf|gif|jpg|bmp|jpeg)/gi;
        var reg = /(https?|http|ftp|file):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/g;
        //var reg= /^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?$/;
        //v = v.replace(reg, "<a href='$1$2'>$1$2</a>"); //这里的reg就是上面的正则表达式
        //s = s.replace(reg, "$1$2"); //这里的reg就是上面的正则表达式
        var s = str.match(reg);

        return reg.test(str)
      },
      /**
       * 富文本字体大小修改
       */
      isPxToRem(str) {
        //匹配:20px或: 20px不区分大小写
        var reg = /(\:|: )+(\d)+(px)/gi;
        let newStr = str.replace(reg, function(_x) {
          _x = _x.replace(/(\:|: )/, '').replace(/px/i, '');
          return ':' + 0 + 'rpx';
        });
        return newStr;
      },
      /**
       * 千位符
       */
      toThousands(num) {
        return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
      }
    };
  }

wx.$c = validator();